#pragma
#include "ggl.h"
#include "Glm\glm.hpp"
#include "Glm\ext.hpp"
#include "ground.h"
#include "skybox.h"

#include "GLCamera.h"
#include "Camera.h"
class shader;
class vertexbuffer;
class model;

class scene {
public:
	scene();
	~scene();
	void Init();
	void SetViewPortSize(float width, float height);
	void Draw();
	void OnKeyUp(char code);
	void OnKeyDown(char code);
	void OnMouseMove(float deltx, float delty);
	void OnMouseWheel(float deltz);

	Camera* GetCamera();
private:
	GLuint vbo, ebo;
	GLuint program;
	GLint positionLocation, modelMatrixLocation, viewMatrixLocation, projectionMatrixLocation, colorLocation;
	GLint texcoordLocation, textureLocation;
	GLuint texture;
	glm::mat4 modelMatrix, viewMatrix, projectionMatrix;
	ground mground;
	glm::vec3 mCameraPos;
	
	shader*trishader;
	vertexbuffer*trivertexbuffer;
	model* mModel;
	SkyBox* m_pSkyBox;


	Camera * camera;
};


